package com.xnx3.j2ee.util;

/**
 * 将组合的运算符跟列名拆分
 * @author Hare
 *
 */
class SqlColumn{
    private String operators;	//运算符
    private String columnName;	//列名
    private String dateFormat;	//时间格式化参数,如 yyyy-MM-dd hh:mm:ss 只针对有(date:yyy-MM-dd...)标注的有效。如果为null，则没有date标注

    /**
     * 传入组合的列名，如 >create_date  或 =id
     * @param groupColumn
     */
    public SqlColumn(String groupColumn){
        for (int i = 0; i < Sql.COLUMN_GROUP.length; i++) {
            if(groupColumn.indexOf(Sql.COLUMN_GROUP[i])>0){
                this.operators = Sql.COLUMN_GROUP[i];
                this.columnName = groupColumn.replace(this.operators, "");
                break;
            }
        }

        if(this.operators==null){
            this.columnName = groupColumn;
        }

        /**
         * 时间判断筛选
         */
        boolean isDateToInt = this.columnName.indexOf("date")>0;	//判断是否需要进行时间戳转换
        if(isDateToInt){
            this.dateFormat = Lang.subString(columnName, "(date:", ")",2);
            this.columnName = this.columnName.replace("(date:"+this.dateFormat+")", "");
        }
    }

    /**
     * 如果没有传入运算符，则返回null
     * @return
     */
    public String getOperators() {
        return operators;
    }
    public String getColumnName() {
        return columnName;
    }

    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }

    public String getDateFormat() {
        return dateFormat;
    }

    public void setDateFormat(String dateFormat) {
        this.dateFormat = dateFormat;
    }

}
